package prueba4;
import java.sql.*;
import javax.swing.JOptionPane;

public class Persona {
    
    
    Conectar con;
    String rut,nombre,contraseña,patente,modelo,fecharecepcion,fechaentrega;
    int telefono;

    public String getRut() {
        return rut;
    }

    public void setRut(String rut) {
        this.rut = rut;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getContraseña() {
        return contraseña;
    }

    public void setContraseña(String contraseña) {
        this.contraseña = contraseña;
    }

    public String getPatente() {
        return patente;
    }

    public void setPatente(String patente) {
        this.patente = patente;
    }

    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public String getFecharecepcion() {
        return fecharecepcion;
    }

    public void setFecharecepcion(String fecharecepcion) {
        this.fecharecepcion = fecharecepcion;
    }

    public String getFechaentrega() {
        return fechaentrega;
    }

    public void setFechaentrega(String fechaentrega) {
        this.fechaentrega = fechaentrega;
    }

    
    
    @Override
    public int hashCode() {
        int hash = 7;
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Persona other = (Persona) obj;
        return true;
    }

    public int getTelefono() {
        return telefono;
    }

    public void setTelefono(int telefono) {
        this.telefono = telefono;
    }

   
    
  
  public Persona (){
    con = new Conectar();
  } 
  
  public Persona verificarUsuario(String rut,  String contraseña){
        Persona u=null;
        Connection cn=null;
        PreparedStatement pr=null;
        ResultSet rs=null;
        try{
            Conectar c=new Conectar();
            cn=c.getConnection();
            String sql="SELECT * FROM usuario WHERE rut=? AND contraseña=?";
            pr=cn.prepareStatement(sql);
            pr.setString(1, rut);
            pr.setString(2, contraseña);
            rs=pr.executeQuery();
            while(rs.next()){
                u=new Persona();
                u.setRut(rs.getString("rut"));
                u.setContraseña(rs.getString("contraseña"));

                break;
            }
        }catch(SQLException e){
            JOptionPane.showMessageDialog(null, e);
            u=null;
        }finally{
            try{
                rs.close();
                pr.close();
                rs.close();
            }catch(SQLException e){
                JOptionPane.showMessageDialog(null, e);
            }
        }
        return u;
    }
  
      public void updatePersona(String rut, String apellido, String nombre, String telefono, String patente, String modelo, String fecharecepcion, String fechaentrega){
       try {            
            PreparedStatement pstm = con.getConnection().prepareStatement("update cliente " +
            "set Apellido = ? ," +
            "Nombre = ? ," +
            "Telefono = ? ," +
            "Patente = ? ," +  
            "modelo = ? ," +  
            "fecharecepcion = ? ," + 
            "fechaentrega = ? " + 
            "Where Rut = ? ");        
            pstm.setString(1, apellido);
            pstm.setString(2, nombre);                        
            pstm.setString(3, telefono); 
            pstm.setString(4, patente); 
            pstm.setString(5, modelo);
            pstm.setString(6, fecharecepcion);
            pstm.setString(7, fechaentrega);
            pstm.setString(8, rut);
            pstm.execute();
            pstm.close();            
         }catch(SQLException e){
         System.out.println(e);
      }
   }
      
      
   public void NuevaPersona(String rut, String apellido, String nombre, String telefono, String patente, String modelo, String fecharecepcion, String fechaentrega){
       try {            
            PreparedStatement pstm = con.getConnection().prepareStatement("insert into cliente(rut,apellido,nombre,telefono,patente,modelo, fecharecepcion, fechaentrega) " +
                    " values(?,?,?,?,?,?,?,?)");            
            pstm.setString(1, rut);
            pstm.setString(2, apellido);
            pstm.setString(3, nombre);                        
            pstm.setString(4,telefono);   
            pstm.setString(5,patente);
            pstm.setString(6,modelo);
            pstm.setString(7,fecharecepcion);
            pstm.setString(8,fechaentrega);
            pstm.execute();
            pstm.close();            
         }catch(SQLException e){
         System.out.println(e);
      }
   }
   

   public void deletePersona(String rut){
       try {
       PreparedStatement pstm =con.getConnection().prepareStatement("delete from cliente where rut = ?");
       pstm.setString(1, rut);
       pstm.execute();
       pstm.close();
       }catch(SQLException e){
           System.out.println(e);
       }
   }
   public Object [][] getDatos(){
      int registros = 0;
      //obtenemos la cantidad de registros existentes en la tabla
      try{         
         PreparedStatement  pstm = con.getConnection().prepareStatement("SELECT count(1) as total FROM cliente");
         ResultSet res = pstm.executeQuery();
         res.next();
         registros = res.getInt("total");
         res.close();
      }catch(SQLException e){
         System.out.println(e);
    }
      
    Object[][] data = new String[registros][8];  
    //realizamos la consulta sql y llenamos los datos en "Object"
      try{    
         PreparedStatement  pstm = con.getConnection().prepareStatement("SELECT " +
            " rut, apellido, nombre, telefono, patente, modelo, fecharecepcion, fechaentrega " +
            " FROM cliente");
            
          try (ResultSet res = pstm.executeQuery()) {
              int i = 0;
              while(res.next()){
                  String estRut = res.getString("rut");
                  String estApellido = res.getString("apellido");
                  String estNombre = res.getString("nombre");
                  String estTelefono = res.getString("telefono");
                  String estPatente = res.getString("patente");
                  String estModelo = res.getString("modelo");
                  String estFecharecepcion = res.getString("fecharecepcion");
                  String estFechaentrega = res.getString("fechaentrega");
                  data[i][0] = estRut;
                  data[i][1] = estApellido;
                  data[i][2] = estNombre;
                  data[i][3] = estTelefono;
                  data[i][4] = estPatente;
                  data[i][5] = estModelo;
                  data[i][6] = estFecharecepcion;
                  data[i][7] = estFechaentrega;

                  i++;
              }}
          }catch(SQLException e){
         System.out.println(e);
    }
    return data;
 } 
}